The present invention relates generally to computer printers and more specifically to the manner of controlling and reading status from specialized point-of-sale printers via standard interfaces. One such standard interface is the so-called "Centronics" parallel interface. Centronics was a company that first introduced this particular interface, but has since gone out of business. However, there is worldwide agreement in the industry of the adaptation and use of this interface as a standard. Another standard interface is the RS-232 serial interface, which is ubiquitous in modems.
The market for store automation equipment is changing rapidly with the widespread use of point-of-sale (POS) terminals. Even small retail stores now have POS equipment. Personal computers have been incorporated into such systems and that is expected to be responsible for higher demands in the future for standardized peripheral devices. But unfortunately, many competing POS terminal printers use mutually incompatible interfaces and command sets. As a result, the range of applications is limited and costs are higher necessary.
Once the most common interface in personal computer printers, the Centronics parallel interface has been succeeded by SCSI, serial, and Appletalk interfaces, especially with regard to laser printers. But IBM compatibles and especially POS equipment still make heavy use of the venerable parallel interface. Seiko Epson Corporation of Tokyo, Japan has promulgated a very popular software interface for the parallel interface called ESC/P.
When the Centronics interface was first defined, there was no need to provide for more than one "paper out" status signal, e.g., pin 12, signal "PE", as seen in Table I below.
TABLE I ______________________________________ (Parallel Printer Interface) Pin Signal I/O Function ______________________________________ 1 STROBE* Input STROBE* pulse width for reading data. Pulse width must be 0.5 microseconds or more at the receiver terminal. Normal state is HIGH. Data is read after the signal goes LOW. 2 DATA0 Input Parallel data bits 0-7. 3 DATA1 Input HIGH represents bit is "1". 4 DATA2 Input LOW represents data bit is "0". 5 DATA3 Input 6 DATA4 Input 7 DATA5 Input 8 DATA6 Input 9 DATA7 Input 10 ACKNLG* Output LOW means the printer is ready to receive data. The pulse width is about 10 microseconds. 11 BUSY Output HIGH means that the printer cannot receive data. LOW indicates that the printer is ready. This signal will go HIGH, 1. after power-on initialization; 2. when the receive buffer is full; 3. for error conditions; in OFF-LINE state; 4. during and after a self-test; and 5. during data entry. 12 PE Output HIGH indicates printer has run out of paper (when paper end detection is enabled by control command). 13 SLCT Output Pulled up to +5V with a 3.3K ohm resistor. 14 AUTO Input When this signal goes LOW, the FEED XT* printer executes one line feed for each carriage return received. 15 NC No connection. 16 GND Logic ground. 17 CHASSIS Chassis ground. GND 18 NC No connection. 19- GND Ground for twisted pair returns. 30 31 INIT Input Printer hardware reset. Normally HIGH, the printer will reinitialize when this signal goes LOW for more than fifty microseconds. 32 ERROR* Output This signal goes LOW. 1. after power-on and until the printer goes ready; 2. for mechanical error conditions; 3. in the OFF-LINE state; and 4. during self-test. 33 GND Ground for twisted pair return. 34 DRAWER Output Pulled up to +5V through a 3.3K KICK ohm resistor. The drawer kick out STATUS connector status signal is a direct output. (The host CPU sends an "ESC p" sequence to have the cash drawer pop out.) 35 +5V Output Pulled up to +5V through a 3.3K ohm resistor. 36 NC No connection. ______________________________________ *Indicates negative is true
Point-of-sale systems have become indispensable in the distribution and service industries. However, a POS environment as a whole reveals a number of deficiencies which needed to be addressed. With respect to printers, entirely different sets of commands have been defined by various manufacturers for particular applications. Only the basic commands seem to have been left alone so that there is some uniformity. The present invention defines a command set extension to the ESC/P, hereinafter referred to as ESC/POS, meeting the needs of the POS industry. ESC/POS divides printer functions and commands employed in the POS environment into clearly defined categories.
Conventional configurations are so limited that newer POS printers, which are capable of working with a variety of paper sources, were difficult to control because the paper status of individual paper sources for the POS printer could not be polled as to status. The system had to assume the paper was ready, and very often this was not the case.
Many ad hoc solutions appeared in the market place that implemented a few new commands, but these were one-time solutions that found little favor with the majority of POS manufacturers and were generally incompatible with one another. An object of the present invention is to provide an interface with a comprehensive set of commands that embrace the more established of these earlier individual commands.
A further object of the present invention is to provide a printer controller capable of selecting a specific detector, based on a previous command from the host computer and capable of halting printing operation until a detector indicates that a paper supply is ready.